<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>商品详情</title>
    <!--jquery-->
    <script type="text/javascript" src="/js/jquery.min.js"></script>
    <!--bootstrap-->
    <link rel="stylesheet" type="text/css" href=
            "/bootstrap/css/bootstrap.min.css"/>
    <script type="text/javascript" src="/bootstrap/js/bootstrap.min.js"></script>
    <!--layer-->
    <script type="text/Javascript" src="/layer/layer.js"></script>
    <!--common.js-->
    <script type="text/javascript" src="/js/common.js"></script>
</head>
<body>
<div class="panel panel-default">
    <div class="panel-heading">秒杀商品详情</div>
    <div class="panel-body">
        <span id="userTip">您还没有登录，请登录后再操作</span>
        <span>没有收货地址的提示......</span>
    </div>
    <table class="table" id="goods">
        <tr>
            <td>商品名称</td>
            <td colspan="3" id="goodsName"></td>
        </tr>
        <tr>
            <td>商品图片</td>
            <td colspan="3"><img id="goodsImg" width="200" height="200"/></td>
        </tr>
        <tr>
            <td>秒杀开始时间</td>
            <td id="startDate"></td>
            <td>
                <input type="hidden" id="remainSeconds">
                <span id="seckillTip"></span>
            </td>
        </tr>
        <tr>
            <td>秒杀结束时间</td>
            <td id="endDate"></td>
            <td>
                <input type="hidden" id="endSeconds">
                <span id="seckillTipEnd"></span>
            </td>
        </tr>
        <tr>
            <td>商品原价</td>
            <td colspan="3" id="goodsPrice"></td>
        </tr>
        <tr>
            <td>秒杀价</td>
            <td colspan="3" id="seckillPrice"></td>
        </tr>
        <tr>
            <td>库存数量</td>
            <td colspan="3" id="stockCount"></td>
        </tr>
        <tr>
            <td>
                <div class="row">
                    <div class="form-inline">
                        <!--                        <img id="verifyCodeImg" width="80" height="32" style="display: none"-->
                        <!--                             onclick="refreshVerifyCodeImg()"/>-->
                        <!--                        <input id="verifyCode" class="form-control" style="display: none"/>-->

                        <img id="captchaImg" width="130" height="32" onclick="refreshCaptcha()" style="display: none"/>
                        <input id="captcha" class="form-control" style="display: none">
                        <button class="btn btn-primary" type="button" id="buyButton" onclick="getSeckillPath()">
                            立即秒杀
                        </button>
                    </div>
                </div>
                <input type="hidden" name="goodsId" id="goodsId">
            </td>
        </tr>
    </table>
</div>
</body>
<script>
    $(function () {
        getGoodsDetail();
    });

    //ajax异步请求页面数据
    function getGoodsDetail() {
        //var goodsId = g_getQueryString("goodsId");
        var goodsId = getQueryVariable("goodsId");

        $.ajax({
            url: "/goods/detail/" + goodsId,
            type: "GET",
            success: function (data) {
                if (data.code == 200) {
                    render(data.obj);
                } else {
                    layer.msg(data.code + ":" + data.message);
                }
            },
            error: function () {
                layer.msg("客户端请求出错");
            }
        })

    }

    //ajax返回值渲染页面
    function render(detail) {
        var user = detail.user;
        var goods = detail.goodsVO;
        var remainSeconds = detail.remainSeconds;
        var endSeconds = detail.endSeconds;

        if (user) {
            $("#userTip").hide();
        }
        $("#goodsName").text(goods.goodsName);
        $("#goodsImg").attr("src", goods.goodsImg);
        $("#startDate").text(new Date(goods.startDate).format("yyyy-MM-dd HH:mm:ss"));
        $("#endDate").text(new Date(goods.endDate).format("yyyy-MM-dd HH:mm:ss"));
        $("#remainSeconds").val(remainSeconds);
        $("#endSeconds").val(endSeconds);
        $("#goodsId").val(goods.id);
        $("#goodsPrice").text(goods.goodsPrice);
        $("#seckillPrice").text(goods.seckillPrice);
        $("#stockCount").text(goods.stockCount);
        countDown();
        countDownEnd();
    }

    //秒杀开始倒计时
    function countDown() {
        var remainSeconds = $("#remainSeconds").val();
        var timeout;
        if (remainSeconds > 0) {
            $("#buyButton").attr("disabled", true);
            $("#seckillTip").html("秒杀开始倒计时：" + remainSeconds + "秒");
            timeout = setTimeout(function () {
                $("#remainSeconds").val(remainSeconds - 1);
                countDown();
            }, 1000);
        } else if (remainSeconds == 0) {
            $("#buyButton").attr("disabled", false);
            if (timeout) {
                clearTimeout(timeout);
            }
            $("#seckillTip").html("秒杀进行中");
            /*$("#verifyCodeImg").attr("src", "seckill/verifyCode?goodsId=" + $("#goodsId").val());
            $("#verifyCodeImg").show();
            $("#verifyCode").show();*/
            $("#captchaImg").attr("src", "seckill/captcha?goodsId=" + $("#goodsId").val() + "&time=" + new Date());
            $("#captchaImg").show();
            $("#captcha").show();
        } else {
            $("#buyButton").attr("disabled", true);
            $("#seckillTip").html("秒杀已结束");
            /*$("#verifyCodeImg").hide();
            $("#verifyCode").hide();*/
            $("#captchaImg").hide();
            $("#captcha").hide();
        }
    }

    //秒杀结束倒计时
    function countDownEnd() {
        var endSeconds = $("#endSeconds").val();
        var timeoutEnd;
        if (endSeconds > 0) {
            $("#seckillTipEnd").html("秒杀结束倒计时：" + endSeconds + "秒");
            timeoutEnd = setTimeout(function () {
                $("#endSeconds").val(endSeconds - 1);
                countDownEnd();
            }, 1000);
        } else if (endSeconds == 0) {
            if (timeoutEnd) {
                clearTimeout(timeoutEnd);
            }
            $("#seckillTipEnd").html("秒杀已结束");
            $("#seckillTip").html("秒杀已结束");
            $("#buyButton").attr("disabled", true);
            $("#verifyCodeImg").hide();
            $("#verifyCode").hide();
        } else {
            $("#seckillTipEnd").html("秒杀已结束");
            $("#buyButton").attr("disabled", true);
        }
    }

    //秒杀
    function doSeckill(path) {
        $.ajax({
            url: "/seckill/" + path + "/doSeckill",
            type: "POST",
            data: {
                goodsId: $("#goodsId").val()
            },
            success: function (data) {
                if (data.code == 200) {
                    // window.location.href = "/orderDetail.htm?orderId=" + data.obj.id;
                    getSecKillResult($("#goodsId").val());
                } else {
                    layer.msg(data.code + ":" + data.message);
                }
            },
            error: function () {
                layer.msg("客户端请求出错");
            }
        });
    }

    //轮询 秒杀结果
    function getSecKillResult(goodsId) {
        g_showLoading();
        $.ajax({
            url: "/seckill/result",
            type: "GET",
            data: {
                goodsId: $("#goodsId").val()
            },
            success: function (data) {
                if (data.code == 200) {
                    var result = data.obj;
                    if (result < 0) {
                        layer.msg("抱歉，秒杀失败！")
                    } else if (result == 0) {
                        //继续轮询
                        setTimeout(function () {
                            getSecKillResult(goodsId);
                        }, 50);
                        // layer.msg("排队中，请稍等！")
                    } else {
                        layer.confirm("恭喜你，秒杀成功！查看订单？", {btn: ["确定", "取消"]},
                            function () {
                                window.location.href = "/orderDetail.htm?orderId=" + result;
                            }, function () {
                                layer.close();
                            });
                    }
                } else {
                    layer.msg(data.code + ":" + data.message);
                }
            },
            error: function () {
                layer.msg("客户端请求出错");
            }
        });
    }

    //获取秒杀地址
    function getSeckillPath() {
        var goodsId = $("#goodsId").val();
        var captcha = $("#captcha").val();
        g_showLoading();
        $.ajax({
            url: "/seckill/path",
            type: "GET",
            data: {
                goodsId: goodsId,
                // verifyCode: $("#verifyCode").val(),
                captcha: captcha
            },
            success: function (data) {
                if (data.code == 200) {
                    var path = data.obj;
                    doSeckill(path);
                } else {
                    layer.msg(data.code + ":" + data.message);
                }
            },
            error: function () {
                layer.msg("客户端请求出错");
            }
        });
    }

    //刷新验证码图片
    /*function refreshVerifyCodeImg() {
        $("#verifyCodeImg").attr("src", "seckill/verifyCode?goodsId=" + $("#goodsId").val() + "&timestamp=" + new Date().getTime());
    }*/
    function refreshCaptcha() {
        $("#captchaImg").attr("src", "seckill/captcha?goodsId=" + $("#goodsId").val() + "&time=" + new Date());
    }
</script>
</html>